package ADMINISTRACION_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class ADM_TIPO_ACTIVO_FUNGIBLE {

    private int ID;
    private String DESCRIPCION;
    private int TIPO;
    private Conexion con = null;

    public ADM_TIPO_ACTIVO_FUNGIBLE(Conexion con) {
        this.con = con;
    }

    public ADM_TIPO_ACTIVO_FUNGIBLE(int ID, String DESCRIPCION, int TIPO) {
        this.ID = ID;
        this.DESCRIPCION = DESCRIPCION;
        this.TIPO = TIPO;
    }

    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.ADM_TIPO_ACTIVO_FUNGIBLE (ID, DESCRIPCION, TIPO) VALUES (" + ID + ",'" + DESCRIPCION + "'," + TIPO + ")";
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.ADM_TIPO_ACTIVO_FUNGIBLE_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.ADM_TIPO_ACTIVO_FUNGIBLE where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<ADM_TIPO_ACTIVO_FUNGIBLE> TodosActivos() throws SQLException {
        String consulta = "select * from BROKER.ADM_TIPO_ACTIVO_FUNGIBLE where TIPO =1";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<ADM_TIPO_ACTIVO_FUNGIBLE> lista = Cargar(rs);
        return lista;
    }
    public ADM_TIPO_ACTIVO_FUNGIBLE buscarXid(int id) throws SQLException {
        String consulta = "select * from BROKER.ADM_TIPO_ACTIVO_FUNGIBLE where ID="+id;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<ADM_TIPO_ACTIVO_FUNGIBLE> lista = Cargar(rs);
        if(lista.size()>0){
            return lista.get(0);
        }
        return null;
    }
    public List<ADM_TIPO_ACTIVO_FUNGIBLE> TodosFungibles() throws SQLException {
        String consulta = "select * from BROKER.ADM_TIPO_ACTIVO_FUNGIBLE where TIPO =0";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<ADM_TIPO_ACTIVO_FUNGIBLE> lista = Cargar(rs);
        return lista;
    }

    public List<ADM_TIPO_ACTIVO_FUNGIBLE> Cargar(ResultSet rs) throws SQLException {
        List<ADM_TIPO_ACTIVO_FUNGIBLE> lista = new ArrayList<ADM_TIPO_ACTIVO_FUNGIBLE>();
        while (rs.next()) {
            ADM_TIPO_ACTIVO_FUNGIBLE objeto = new ADM_TIPO_ACTIVO_FUNGIBLE(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setDESCRIPCION(rs.getString("DESCRIPCION"));
            objeto.setTIPO(rs.getInt("TIPO"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public String getDESCRIPCION() {
        return DESCRIPCION;
    }

    public void setDESCRIPCION(String DESCRIPCION) {
        this.DESCRIPCION = DESCRIPCION;
    }

    public int getTIPO() {
        return TIPO;
    }

    public void setTIPO(int TIPO) {
        this.TIPO = TIPO;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
